package org.idea.servlet;

import org.idea.dao.UserInfoDao;
import org.idea.dao.impl.UserInfoDaoImpl;
import org.idea.entity.UserInfo;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * 实现用户登录的服务器端程序
 *
 * @Author zqx
 * @Date 2023-10-11
 */
// 第四：配置访问地址
@WebServlet("/login.do")
// 第一：继承 HttpServlet
public class LoginServlet extends HttpServlet {
    // 第二：重写方法
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 第三：实现业务逻辑
        // 1.获取客户端输入的数据
        String uname = req.getParameter("username");
        String upass = req.getParameter("password");

        // 2.加工处理 - 业务对象 - DAO对象 - alt + enter
        UserInfoDao dao = new UserInfoDaoImpl() ;
        UserInfo userInfo = dao.selectUserInfo(uname,upass) ;

        // 3.响应结果 - 在数据库中，查询不到用户，则表示登录失败，否则登录成功
        if(userInfo==null) {
            // 页面跳转 - 重定向
            resp.sendRedirect("error.jsp");
        } else {
            // 页面跳转 - 转发
            // RequestDispatcher requestDispatcher = req.getRequestDispatcher("main.jsp");
            // requestDispatcher.forward(req,resp);
            HttpSession session = req.getSession();
            session.setAttribute("user",userInfo);

            req.getRequestDispatcher("main.jsp").forward(req,resp);
        }
    }
}
